package com.example.user.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 用户登录记录表
 * </p>
 *
 * @author crp
 * @since 2025-09-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class UserLoginHistory implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 记录ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 登录时间
     */
    private LocalDateTime loginTime;

    /**
     * IP地址(支持IPv6)
     */
    private String ipAddress;

    /**
     * 用户代理字符串
     */
    private String userAgent;

    /**
     * 设备类型：web/mobile/app
     */
    private String deviceType;

    /**
     * 浏览器信息
     */
    private String browser;

    /**
     * 操作系统
     */
    private String os;

    /**
     * 登录地点(可选)
     */
    private String location;

    /**
     * 登录状态：0-失败，1-成功
     */
    private Integer status;

    /**
     * 退出时间
     */
    private LocalDateTime logoutTime;

    /**
     * 会话时长(秒)
     */
    private Integer sessionDuration;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;


}
